package 第一章基础算法.前缀和与差分.id797差分;

import java.util.Scanner;

/**
 * 差分模板
 * 用途：通过差分数组，实现快速让原数组中某段区间增大或者减小一个值
 * 关键：差分数组,初始全为0，通过插入操作构造出原数组的差分数组即可
 *      想要在原数组中[l,r]上加上c，即在差分数组中，dif[l-1] += c, dif[r] -= c
 */
public class Main {
    public static void main(String[] args) {
        //处理输入
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();
        int[] nums = new int[n+1];
        //原数组下标从1开始
        for(int i = 1;i <= n;i++){
            nums[i] = scanner.nextInt();
        }
        //差分数组下标从0开始
        int[] dif = new int[n+1];
        for(int i = 1;i <= n;i++){
            insert(dif,i,i,nums[i]);
        }
        //计算
        while (m-->0){
            int l = scanner.nextInt();
            int r = scanner.nextInt();
            int c = scanner.nextInt();
            insert(dif, l , r ,c);
        }
        //对差分数组求前缀和得到操作后的数组
        int[] res = new int[n+1];
        for(int i = 1;i<=n;i++){
            res[i] = res[i-1] + dif[i-1];
        }
        //处理输出
        for(int i = 1;i<=n;i++){
            System.out.print(res[i] + " ");
        }
    }
    //差分数组插入操作：使得原数组[l,r]区间上的值+c
    public static void insert(int[]dif , int l , int r ,int c){
        dif[l-1] += c;
        dif[r] -= c;
    }
}
